루트 디렉토리
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
루트 디렉토리는 유닉스 및 유닉스 계열 시스템에서 `/`로 표시되며, 파일 시스템 계층 구조의 최상위 디렉토리이다. 모든 파일 시스템 항목은 이 루트에서 시작하며, 다른 디렉토리를 포함할 수 있지만 루트 디렉토리는 다른 디렉토리 안에 포함될 수 없다. 운영 체제에 따라 프로세스마다 루트 디렉토리에 대한 자체 개념을 가질 수 있으며, chroot 시스템 호출을 통해 변경 가능하다. DOS, OS/2, 마이크로소프트 윈도우에서는 각 파티션에 드라이브 문자가 할당되어 공통 루트 디렉토리가 존재하지 않는다. VMS 운영 체제에서는 모든 사용자 파일이 저장되는 디렉토리를 루트 디렉토리로 사용하며, `/root`는 슈퍼유저의 홈 디렉토리를 의미한다.
유닉스 및 유닉스 계열 시스템에서 루트 디렉토리는 `/`(슬래시) 기호로 표시된다. 루트 디렉토리는 관례적으로 `/`로 지칭되지만, 디렉토리 항목 자체에는 이름이 없으며 그 경로는 초기 디렉토리 구분 문자(`/`) 앞의 "비어 있는" 부분이다. 마운트된 파일 시스템을 포함한 모든 파일 시스템 항목은 이 루트의 "분기"이다.[1]
유닉스 및 유닉스 계열 시스템에서 루트 디렉토리는 `/` (슬래시) 기호로 표시된다. 루트 디렉토리는 관례적으로 `/`로 지칭되지만, 디렉토리 항목 자체에는 이름이 없으며 그 경로는 초기 디렉토리 구분 문자(`/`) 앞의 "비어 있는" 부분이다. 마운트된 파일 시스템을 포함한 모든 파일 시스템 항목은 이 루트의 "분기"이다.
2. 파일 시스템 계층 구조
DOS, OS/2, 마이크로소프트 윈도우에서는 각 파티션에 드라이브 문자가 할당되며(고유 파티션 C에 대해서는 `C:\`로 분류), 파티션을 초과하는 공통 루트 디렉토리는 존재하지 않는다. DOS, OS/2, Windows는 파티션을 다른 드라이브의 디렉토리에 마운트할 수 있는 추상적인 계층 구조를 지원하지만, 이는 드물게 나타난다. DOS에서는 `JOIN` 명령을 통해 이 기능을 사용할 수 있으며, 모든 Windows 버전에서도 마찬가지이다. 문맥에 따라서는 모든 마운트된 드라이브를 포함하는 루트 디렉토리를 참조할 수도 있지만, 루트 디렉토리는 파일 시스템 어디에도 존재하지 않으므로 파일을 직접 포함할 수 없다. 예를 들어, "file:" URI 스키마를 사용하여 로컬 파일에 링크하는 경우, 구문은 "file:///C:/..." 형식이 되며, 여기서 "file://"는 표준 접두사이고 세 번째 `/`는 로컬 시스템의 루트를 나타낸다.
유닉스 계열 운영 체제에서 각 프로세스는 자신의 루트 디렉토리를 인식한다. 대부분의 프로세스에서 루트 디렉토리는 시스템의 실제 루트 디렉토리와 동일하지만, `chroot` 시스템 호출을 통해 변경할 수 있다. 이는 주로 레거시 라이브러리가 필요한 소프트웨어를 실행하거나, 소프트웨어 설치 및 디버깅을 간소화하기 위해 격리된 환경을 생성하는 데 사용된다. chroot 내의 프로세스는 chroot 환경에서 벗어날 수 없으므로 보안 강화 목적으로 사용해서는 안 된다.[7] FreeBSD는 운영 체제 수준 가상화를 지원하고 파일 계층의 하위 집합에 프로세스가 접근할 수 있는 파일을 제한하여 보안을 강화하는 `jail()` 시스템 호출을 제공한다.
2. 1. 메타포 (비유)
물리적인 파일 캐비닛을 예로 들어 보자. 파일 캐비닛 안의 각 서랍은 파일 시스템이나 하위 디렉토리에 해당하고, 파일 캐비닛이 있는 방은 루트 디렉토리에 비유할 수 있다. 즉, 다른 디렉토리는 루트 디렉토리 안에 포함될 수 있지만, 루트 디렉토리는 다른 어떤 디렉토리 안에도 포함될 수 없다. 대부분의 운영 체제에서는 파일을 루트 디렉토리뿐만 아니라 그 안의 하위 디렉토리에도 배치할 수 있다. 이것은 방 안 어디에나, 또는 방 안에 있는 임의의 파일 캐비닛 안에 문서를 놓는 것으로 비유할 수 있다.
3. 운영체제별 루트 디렉토리
DOS, OS/2, 마이크로소프트 윈도우에서는 각 파티션에 드라이브 문자가 할당되며(예: C 파티션은 `C:\`로 분류), 파티션을 초과하는 공통 루트 디렉토리는 존재하지 않는다. DOS, OS/2, 그리고 윈도우는 파티션을 다른 드라이브의 디렉토리에 마운트할 수 있는 추상적인 계층 구조를 지원하지만, 이는 드물게 나타난다. DOS에서는 `JOIN` 명령을 통해 이 기능을 사용할 수 있었으며, 모든 윈도우 버전에서도 마찬가지로 지원한다. 문맥에 따라 모든 마운트된 드라이브를 포함하는 루트 디렉토리를 참조할 수도 있지만, 루트 디렉토리는 파일 시스템 어디에도 존재하지 않으므로 파일을 직접 포함할 수 없다. 예를 들어, "file:" URI 스키마를 이용하여 로컬 파일에 링크할 때, "file:///C:/..." 형식으로 표현되며, 여기서 "file://"는 표준 접두사이고 세 번째 '/'는 로컬 시스템의 루트를 나타낸다.[7]
유닉스 계열 운영 체제에서 각 프로세스는 루트 디렉토리가 무엇인지에 대한 자체적인 개념을 가지고 있다. 대부분의 프로세스에서 이는 시스템의 실제 루트 디렉토리와 동일하지만, chroot 시스템 호출을 호출하여 변경할 수 있다. 이는 일반적으로 레거시 라이브러리를 필요로 하는 소프트웨어를 실행하기 위한 격리된 환경을 만들고, 때로는 소프트웨어 설치 및 디버깅을 단순화하기 위해 수행된다. chroot는 내부 프로세스가 탈출할 수 있으므로 보안 강화를 위해 사용되도록 설계되지 않았다.[7] FreeBSD는 운영 체제 수준 가상화를 가능하게 하고, 파일 계층의 서브셋에 정확하게 프로세스가 접근 가능한 파일은 어느 것인지 억제하기 위한 보안 목적으로도 도움이 되는, 더욱 강력한 jail() 시스템 호출을 제공한다.
3. 1. 유닉스 및 유닉스 계열 시스템
유닉스 및 유닉스 계열 시스템에서 루트 디렉토리는 `/` (슬래시) 기호로 표시된다. 루트 디렉토리는 관례적으로 `/`로 지칭되지만, 디렉토리 항목 자체에는 이름이 없으며 그 경로는 초기 디렉토리 구분 문자(`/`) 앞의 "비어 있는" 부분이다. 마운트된 파일 시스템을 포함한 모든 파일 시스템 항목은 이 루트의 "분기"이다.[1]
유닉스 계열 운영 체제에서 각 프로세스는 루트 디렉토리가 무엇인지에 대한 자체적인 개념을 가지고 있다. 대부분의 프로세스에서 이는 시스템의 실제 루트 디렉토리와 동일하지만, chroot 시스템 호출을 호출하여 변경할 수 있다. 이는 일반적으로 레거시 라이브러리를 필요로 하는 소프트웨어를 실행하기 위한 격리된 환경을 만들고, 때로는 소프트웨어 설치 및 디버깅을 단순화하기 위해 수행된다. chroot는 내부 프로세스가 탈출할 수 있으므로 보안 강화를 위해 사용되도록 설계되지 않았다.[7] FreeBSD는 운영 체제 수준 가상화를 가능하게 하고, 파일 계층의 서브셋에 정확하게 프로세스가 접근 가능한 파일은 어느 것인지 억제하기 위한 보안 목적으로도 도움이 되는, 더욱 강력한 jail() 시스템 호출을 제공한다.
일부 유닉스 시스템은 루트 디렉토리 아래의 디렉토리를 지원한다. 일반적으로 "/.."는 "/"와 동일한 아이노드를 가리키지만, MUNIX|무닉스de에서 이는 원격 트리를 마운트할 수 있는 슈퍼 루트 디렉토리를 가리키도록 변경될 수 있다.[4][5] 예를 들어, 두 워크스테이션 "pcs2a"와 "pcs2b"가 "connectnodes"와 "uunite" 시작 스크립트를 통해 연결된 경우, "/../pcs2b"를 사용하여 "pcs2a"에서 "pcs2b"의 루트 디렉토리에 접근할 수 있다.
3. 2. DOS, OS/2, 마이크로소프트 윈도우
DOS, OS/2, 마이크로소프트 윈도우에서는 각 파티션에 드라이브 문자가 할당되며(예: C 파티션은 `C:\`로 분류), 파티션을 초과하는 공통 루트 디렉토리는 존재하지 않는다. DOS, OS/2, 그리고 윈도우는 파티션을 다른 드라이브의 디렉토리에 마운트할 수 있는 추상적인 계층 구조를 지원하지만, 이는 드물게 나타난다. DOS에서는 `JOIN` 명령을 통해 이 기능을 사용할 수 있었으며, 모든 윈도우 버전에서도 마찬가지로 지원한다. 문맥에 따라 모든 마운트된 드라이브를 포함하는 루트 디렉토리를 참조할 수도 있지만, 루트 디렉토리는 파일 시스템 어디에도 존재하지 않으므로 파일을 직접 포함할 수 없다. 예를 들어, "file:" URI 스키마를 이용하여 로컬 파일에 링크할 때, "file:///C:/..." 형식으로 표현되며, 여기서 "file://"는 표준 접두사이고 세 번째 '/'는 로컬 시스템의 루트를 나타낸다.[7]
3. 2. 1. 윈도우 시스템의 특징과 한국 내 사용
DOS, OS/2, 마이크로소프트 윈도우 시스템에서는 각 파티션에 드라이브 문자가 할당되며(예: C 파티션은 `C:\`로 표시됨), 공개적인 루트 디렉토리는 존재하지 않는다.
3. 3. VMS
VMS 운영 체제에서 "루트 디렉토리"는 유닉스의 홈 디렉토리처럼 모든 사용자 파일이 저장되는 디렉토리를 말한다. VMS에서 MS-DOS의 디스크별 "루트 디렉토리"에 해당하는 것은 "마스터 파일 디렉토리"이며, [000000]으로 지정된다.
4. 관련 용도 ( /root )
많은 유닉스 운영체제에는 `/root` ('슬래시 루트'라고 발음)라는 디렉터리가 있다.[6] 이는 'root' 슈퍼유저의 홈 디렉터리이다. Mac 및 iOS 시스템에서 슈퍼유저 홈 디렉터리는 `/var/root`이다.[6]
4. 1. 대한민국 IT 환경과 /root
대한민국에서는 리눅스 기반 서버 시스템이 널리 사용되면서, 시스템 관리자들이 `/root` 디렉토리를 통해 시스템 관리 작업을 수행하는 경우가 많다. `/root`는 이 문서에서 설명하는 "루트 디렉토리"가 아니라 슈퍼유저(관례적으로 "root"로 알려진)의 홈 디렉토리를 의미하며, 이를 명확히 하기 위해 "슬래시 루트"로 표시하는 경우도 있다.[1] 이는 서버 보안 및 관리에 중요한 역할을 한다.5. 홈페이지와 루트 디렉토리
참조
[1]
웹사이트
Root Directory Definition
https://techterms.co[...]
2020-03-14
[2]
웹사이트
Root Filesystem Definition by The Linux Information Project
http://www.linfo.org[...]
2020-03-14
[3]
웹사이트
What chroot() is really for
2014-02-12
[4]
논문
The Newcastle Connection
https://web.archive.[...]
2016-08-16
[5]
서적
NFS Illustrated
Addison Wesley
[6]
웹사이트
Root Definition
http://www.linfo.org[...]
The Linux Information Project
2007-10-27
[7]
웹사이트
What chroot() is really for
http://lwn.net/Artic[...]
Lwn.net
null
[8]
문서
root Definition
http://www.linfo.org[...]
The Linux Information Project
[9]
문서
歴史的には(大昔には)/ を root のホームディレクトリとする慣習だったこともあるが、色々と不都合なため /root に分離された。
[10]
논문
The Newcastle Connection
https://web.archive.[...]
2016-08-16
[11]
서적
NFS Illustrated
https://archive.org/[...]
Addison Wesley
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com